講完了Array跟Linked list接下來我們來講Stack跟Queue吧d(`・∀・)b
什麼是Stack勒,先舉一些日常生活中的例子,像是餐廳裡面洗好堆起來的盤子,先洗好的會被放在最下面,最晚被洗好的會在最上面,而我們也會從頂端先拿,就是先拿最晚被洗好的盤子,又或著是折好後跌在衣櫃中的衣服們,先被折好的會被疊在最下面,最晚被折好的會在最上面,也是我們直接拿會先拿到的,這些概念就和Stack很像!!

例: push a, push b, push c, pop, pop, push d

是電腦科學中具有類似行為的特定類別的資料結構的數學模型;或者具有類似語意的一種或多種程式設計語言的資料類型。簡單一點說,在我們設計分析演算法時,不會特別針對某一個演算法特定的資料型態,也不會去考慮實作時的細節及資料本身的性質,而是將資料的一般特性與操作方式一起思考定義出的數學觀念。ADT是一種理論上的觀念,並不局限於任何一種特定的語言,而且每一種ADT都可以透過不同方式實現。今天介紹的Stack就是屬於ADT的一種,之後會介紹到的Queue及Graph、Tree等等也是。:.゚ヽ(*´∀`)ノ゚.:。
宣告:
  push(S,item)
  {
      if(Top==n)return "S Full";
      else{
          Top=Top+1;
          S[Top]=item;
          }
   }
  pop(S)➝item
  {
      if(Top==0)return "S empty";
      else{
            item=S[Top];
            Top=Top-1;
            return item;
          }
   }
宣告:
  push(S,item)
  {
      ①new(t); //向系統要求一個Node空間
      ②t➝Data = item;
      ③t➝link = Top;
      ④Top = t;
   }

  pop(S)➝item
  {
      if(Top==Null)return "S empty";
      else{
          ①t = Top; //t指向要pop的Node空間
          ②item = Top➝Data;
          ③Top = Top➝link; //Top要往下一個Node跑
          ④free(t); //回收t之Node空間
          return item;
          }
   }

ADT維基百科
擁抱「資料結構」的「演算法」(07) - 堆疊 Stack
程式菜鳥自學C++資料結構演算法 – 堆疊Stack介紹與建立